<?php
/**
 * Este objeto contiene todos los datos de un usuario.
 */
class MA_ValueObjects_User 
{
	public $userId;
	public $username;
	public $mail;
	public $exists;
	private $_userModel;
	/**
	 * Retorna una instancia de un objeto que se puede serializar y persistir en cualquier medio. 
	 * @param int $userId
	 * @param string $username
	 * @param string $mail
	 */
	public function __construct( int $userId, string $username, string $mail )
	{
		$this->_userModel = new Users();
		if( $userId != 0 ) {
			$row = $this->_userModel->find( $userId )->current();
			if( $row == null ) {
				throw new Exception( MA_Error_User::get( 'USER_ID_NOT_EXISTS' ));
			} 
		}
		$this->userId = $userId;
		$this->username = $username;
		$this->mail = $mail;
		$this->_exists();		
		
	}
}